package com.example.foodsy.controller;

import com.example.foodsy.dto.TraceFullDTO;
import com.example.foodsy.service.impl.TraceQueryServiceImpl;
import com.example.foodsy.utils.Result;
import com.example.foodsy.utils.TraceCodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/trace")
public class TraceController {
    @Autowired
    private TraceQueryServiceImpl traceQueryService;

    /**
     * 消费者溯源查询（公开接口，无需登录）
     * @param sourceId 溯源码
     * @return 全流通环节信息
     */
    @GetMapping("/query")
    public Result queryFullTrace(String sourceId) {
        // 1. 校验溯源码格式
        if (!new TraceCodeUtils().validateSourceId(sourceId)) {
            return Result.fail("溯源码格式错误");
        }

        // 2. 查询全流通环节数据（封装为DTO）
        TraceFullDTO traceFullDTO = traceQueryService.queryFullTraceBySourceId(sourceId);
        if (traceFullDTO == null) {
            return Result.fail("未查询到该溯源码的流通信息");
        }

        return Result.ok(traceFullDTO);
    }
}